package com.ocm.core.service;

import java.util.List;

import com.ocm.core.dto.ClassDefinitionDto;
import com.ocm.core.dto.PropertyDefinitionDto;
import com.ocm.core.mapping.DTOConfiguration;

public interface ClassDefService {

   void create(long parentClassDefId, ClassDefinitionDto classDefinitionDto); 

   public void update(ClassDefinitionDto classDefDto);

   List<ClassDefinitionDto> findAll(DTOConfiguration configure);

   List<ClassDefinitionDto> findOriginalClass(long storageId, DTOConfiguration configure);

   List<ClassDefinitionDto> findClassDefChilds(long parentClassDefId,  DTOConfiguration configure);

   List<ClassDefinitionDto> findClassChilds(long parentClassDefId,  DTOConfiguration configure);

   List<PropertyDefinitionDto> getAllProperties(long classDefId);

   ClassDefinitionDto findId(long classDefId,  DTOConfiguration configure);

   boolean hasExistName(long storage, String className);
}
